/*

	CAmbientLight.h
	
	Implementation of the light source interface
	for ambient lighting. Lights is to all surfaces
	in the scene.
	
	Written by Sigurd Suhm 2009

*/

#ifndef _CAMBIENTLIGHT_H
#define _CAMBIENTLIGHT_H

// Includes
#include "ILightSource.h"

namespace EraAstral
{
	namespace graphics
	{
		class AmbientLight : public ILightSource
		{
			private:
				// Accumulated values of ambient lights
				static float	accumAmbient[4];
				
			public:
				// Default constructor
				AmbientLight(core::SceneManager *sceneManager);
				// Default destructor
				~AmbientLight();
				
				// Commits light changes to OpenGL
				void	Commit();
				// Applies lighting to the current scene
				void	Apply();
				
				// Gets the accumulated ambient values
				static float	*GetAccumAmbient();
				// Clears the accumulated ambient values
				static void		ClearAccumAmbient();
		};
	}
}

#endif		// _CAMBIENTLIGHT_H